home *** CD-ROM | disk | FTP | other *** search
-
-
-
- DDDDIIIIAAAALLLL((((3333CCCC)))) DDDDIIIIAAAALLLL((((3333CCCC))))
-
-
-
- NNNNAAAAMMMMEEEE
- dial - establish an out-going terminal line connection
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- ####iiiinnnncccclllluuuuddddeeee <<<<ddddiiiiaaaallll....hhhh>>>>
-
- iiiinnnntttt ddddiiiiaaaallll ((((CCCCAAAALLLLLLLL ccccaaaallllllll))));;;;
-
- vvvvooooiiiidddd uuuunnnnddddiiiiaaaallll ((((iiiinnnntttt ffffdddd))));;;;
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- _d_i_a_l returns a file-descriptor for a terminal line open for read/write.
- The argument to _d_i_a_l is a CALL structure (defined in the <_d_i_a_l._h> header
- file).
-
- When finished with the terminal line, the calling program must invoke
- _u_n_d_i_a_l to release the semaphore that has been set during the allocation
- of the terminal device.
-
- The definition of CALL in the <_d_i_a_l._h> header file is:
-
- typedef struct {
- struct termio *attr; /* pointer to termio attribute struct */
- int baud; /* transmission data rate */
- int speed; /* 212A modem: low=300, high=1200 */
- char *line; /* device name for out-going line */
- char *telno; /* pointer to tel-no digits string */
- int modem; /* specify modem control for direct lines */
- char *device; /*Will hold the name of the device used
- to make a connection */
- int dev_len; /* The length of the device used to make
- connection */
- } CALL;
-
- The CALL element _s_p_e_e_d is intended only for use with an outgoing dialed
- call, in which case its value should be either 300 or 1200 to identify
- the 113A modem, or the high- or low-speed setting on the 212A modem. Note
- that the 113A modem or the low-speed setting of the 212A modem will
- transmit at any rate between 0 and 300 bits per second. However, the
- high-speed setting of the 212A modem transmits and receives at 1200 bits
- per second only. The CALL element _b_a_u_d is for the desired transmission
- baud rate. For example, one might set _b_a_u_d to 110 and _s_p_e_e_d to 300 (or
- 1200). However, if ssssppppeeeeeeeedddd set to 1200 bbbbaaaauuuudddd must be set to high (1200).
-
- If the desired terminal line is a direct line, a string pointer to its
- device-name should be placed in the _l_i_n_e element in the CALL structure.
- Legal values for such terminal device names are kept in the _D_e_v_i_c_e_s file.
- In this case, the value of the _b_a_u_d element need not be specified as it
- will be determined from the _D_e_v_i_c_e_s file.
-
-
-
-
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- DDDDIIIIAAAALLLL((((3333CCCC)))) DDDDIIIIAAAALLLL((((3333CCCC))))
-
-
-
- The _t_e_l_n_o element is for a pointer to a character string representing the
- telephone number to be dialed. The termination symbol will be supplied
- by the _d_i_a_l function, and should not be included in the _t_e_l_n_o string
- passed to _d_i_a_l in the CALL structure.
-
- The CALL element _m_o_d_e_m is used to specify modem control for direct lines.
- This element should be non-zero if modem control is required. The CALL
- element _a_t_t_r is a pointer to a _t_e_r_m_i_o structure, as defined in the
- _t_e_r_m_i_o._h header file. A NULL value for this pointer element may be
- passed to the _d_i_a_l function, but if such a structure is included, the
- elements specified in it will be set for the outgoing terminal line
- before the connection is established. This is often important for
- certain attributes such as parity and baud-rate.
-
- The CALL element _d_e_v_i_c_e is used to hold the device name (cul..) that
- establishes the connection.
-
- The CALL element _d_e_v__l_e_n is the length of the device name that is copied
- into the array device.
-
- FFFFIIIILLLLEEEESSSS
- /etc/uucp/Devices
- /var/spool/locks/LCK.._t_t_y-_d_e_v_i_c_e
-
- SSSSEEEEEEEE AAAALLLLSSSSOOOO
- alarm(2), read(2), write(2).
- termio(7m).
- uucp(1C).
-
- DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
- On failure, a negative value indicating the reason for the failure will
- be returned. Mnemonics for these negative indices as listed here are
- defined in the <_d_i_a_l._h> header file.
-
- INTRPT -1 /* interrupt occurred */
- D_HUNG -2 /* dialer hung (no return from write) */
- NO_ANS -3 /* no answer within 10 seconds */
- ILL_BD -4 /* illegal baud-rate */
- A_PROB -5 /* acu problem (open() failure) */
- L_PROB -6 /* line problem (open() failure) */
- NO_Ldv -7 /* can't open LDEVS file */
- DV_NT_A -8 /* requested device not available */
- DV_NT_K -9 /* requested device not known */
- NO_BD_A -10 /* no device available at requested baud */
- NO_BD_K -11 /* no device known at requested baud */
-
- WWWWAAAARRRRNNNNIIIINNNNGGGGSSSS
- Including the <<<<ddddiiiiaaaallll....hhhh>>>> header file automatically includes the <<<<tttteeeerrrrmmmmiiiioooo....hhhh>>>>
- header file.
-
-
-
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-
-
-
- DDDDIIIIAAAALLLL((((3333CCCC)))) DDDDIIIIAAAALLLL((((3333CCCC))))
-
-
-
- The above routine uses <<<<ssssttttddddiiiioooo....hhhh>>>>, which causes it to increase the size of
- programs, not otherwise using standard I/O, more than might be expected.
-
- BBBBUUUUGGGGSSSS
- An _a_l_a_r_m(2) system call for 3600 seconds is made (and caught) within the
- _d_i_a_l module for the purpose of ``touching'' the _L_C_K.. file and
- constitutes the device allocation semaphore for the terminal device.
- Otherwise, _u_u_c_p(1C) may simply delete the _L_C_K.. entry on its 90-minute
- clean-up rounds. The alarm may go off while the user program is in a
- _r_e_a_d(2) or _w_r_i_t_e(2) system call, causing an apparent error return. If
- the user program expects to be around for an hour or more, error returns
- from _r_e_a_ds should be checked for ((((eeeerrrrrrrrnnnnoooo========EEEEIIIINNNNTTTTRRRR)))), and the _r_e_a_d possibly
- reissued.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 3333
-
-
-
-